home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / v7n22.arc / QSORTFL.BAS < prev    next >
BASIC Source File  |  1988-12-07  |  1KB  |  41 lines

  1.      reclen = 31
  2.      OPEN "FILE.DAT" FOR RANDOM AS #1 LEN = reclen
  3.      FIELD #1, reclen AS rec$
  4.      FIELD #1, 3 AS junk$, 10 AS keyvar$
  5.      numrecs = LOF(1) / reclen
  6.  
  7.      ind = 1
  8.      WHILE ind <= numrecs
  9.         ind = ind + ind
  10.         npass.req% = npass.req% + 1
  11.      WEND
  12.      PRINT "Number of passes required is: "; npass.req% - 1
  13.  
  14.      ind = (ind - 1) \ 2
  15.      WHILE ind
  16.          npass% = npass% + 1
  17.          LOCATE 2, 1
  18.          PRINT "PASS being processed:"; npass%
  19.          FOR I = 1 TO numrecs - ind
  20.              J = I
  21.              WHILE J > 0
  22.                 GET #1, J: varJ$ = keyvar$: recJ$ = rec$
  23.                 L = J + ind
  24.                 GET #1, L: varL$ = keyvar$: recL$ = rec$
  25.                 IF varJ$ > varL$ THEN
  26.                    LSET rec$ = recJ$: PUT #1, L
  27.                    LSET rec$ = recL$: PUT #1, J
  28.                    J = J - ind
  29.                 ELSE
  30.                    J = 0
  31.                 END IF
  32.              WEND
  33.          NEXT
  34.          ind = (ind - 1) \ 2
  35.      WEND
  36.  
  37.      BEEP
  38.      PRINT "Done";
  39.      CLOSE
  40.  
  41.